#pragma once
#include "predef.h"
#include "exportsymbol.h"

namespace Pattern
{
	class PATTERN_API ObjectName
	{
	private:	
		std::string text;
		Uint hash;
	public:
		void Text(const std::string& name);

		const std::string Text() const;
		Uint GetHash() const;

		ObjectName();
		ObjectName(const ObjectName& ref);
		ObjectName(const char* name);
		ObjectName(const std::string& name);
		~ObjectName(void);
		
		bool IsEmpty() const;

		void Clear();

		operator const std::string();
		operator const Uint();
		bool operator ==(const ObjectName& another) const;
		bool operator !=(const ObjectName& another) const;
	};
}